package main

import (
	"fmt"
	"math"
)

func main() {
	/*
		 循环

		for 表达式1;表达式2;表达式3{
		}
		三个表达式都是可选的
	*/

	for i := 1; i < 11; i++ {
		print(i, " ")
	}

	//省略前后表达式
	i := 0
	for i < 10 {
		i++
		println(i)
	}

	//省略所有表达式则永远为真
	/*for{
		print(811)
		time.Sleep(1000000000*3)

	}*/

	println("------ 1-100之间可以被3整除，不能被5整除的数 ------")
	i = 0
	for {
		i++
		if i%3 == 0 && i%5 != 0 {
			print(i, " ")
		}
		if i > 100 {
			break
		}
	}

	println("------ 1-100之间所有整数和 ------")
	i = 0
	sum := 0
	for i <= 100 {
		sum += i
		println(i, sum)
		i++
	}
	print(sum)

	println("------ 乘法表 ------")
	for i := 1; i < 10; i++ {
		for j := i; j < 10; j++ {
			fmt.Printf("%d * %d = %d   ", i, j, i*j)
		}
		println("")
	}

	//break 结束循环
	//continue 跳过本次循环

	println("------ 求水仙花数 ------")
	var singles int = 0
	var ten int = 0
	var hundreds int = 0
	for i := 100; i < 1000; i++ {
		singles = i % 10
		ten = (i%100 - singles) / 10
		hundreds = i / 100
		if math.Pow(float64(singles), 3)+math.Pow(float64(ten), 3)+math.Pow(float64(hundreds), 3) == float64(i) {
			println(i)
		}
		//println(singles, ten,hundreds)
	}
	println("------ 求100以内素数 ------")
	for i := 2; i < 101; i++ {

		isex := false
		for j := 2; j <= int(math.Sqrt(float64(i))); j++ {
			if i%j == 0 {
				isex = true
				break
			}
		}

		if !isex {
			println(isex, i)
		}
	}
}
